}
}
-static GskRenderNode *
-gtk_render_node_view_real_get_render_node (GtkWidget *widget,
- GskRenderer *renderer)
+static void
+gtk_render_node_view_snapshot (GtkWidget *widget,
+ GtkSnapshot *snapshot)
{
GtkRenderNodeView *view = GTK_RENDER_NODE_VIEW (widget);
GtkRenderNodeViewPrivate *priv = gtk_render_node_view_get_instance_private (view);
GdkRectangle viewport;
graphene_rect_t rect;
- GskRenderNode *node;
GskRenderer *fallback;
int width, height;
cairo_t *cr;
if (priv->render_node == NULL)
- return FALSE;
+ return;
gtk_render_node_view_get_effective_viewport (view, &viewport);
width = gtk_widget_get_allocated_width (widget);
height = gtk_widget_get_allocated_height (widget);
- node = gsk_renderer_create_render_node (renderer);
- gsk_render_node_set_name (node, "RenderNodeView node");
graphene_rect_init (&rect, 0, 0, width, height);
- gsk_render_node_set_bounds (node, &rect);
+ cr = gtk_snapshot_append_cairo_node (snapshot,
+ &rect,
+ "RenderNodeView");
- cr = gsk_render_node_get_draw_context (node, renderer);
cairo_translate (cr, width / 2.0, height / 2.0);
if (width < viewport.width || height < viewport.height)
{
}
cairo_translate (cr, - viewport.x - viewport.width / 2.0, - viewport.y - viewport.height / 2.0);
- fallback = gsk_renderer_create_fallback (renderer,
+ fallback = gsk_renderer_create_fallback (gtk_snapshot_get_renderer (snapshot),
&(graphene_rect_t)
GRAPHENE_RECT_INIT (viewport.x, viewport.y,
viewport.width, viewport.height),
}
cairo_destroy (cr);
-
- return node;
}
static void
object_class->dispose = gtk_render_node_view_dispose;
widget_class->measure = gtk_render_node_view_measure;
- widget_class->get_render_node = gtk_render_node_view_real_get_render_node;
+ widget_class->snapshot = gtk_render_node_view_snapshot;
props[PROP_VIEWPORT] =
g_param_spec_boxed ("viewport",